import { Rule, RuleType } from '@midwayjs/decorator';

// SKU 基本信息
export class SkuDto {
  @Rule(RuleType.string().required())
  poster: string;

  @Rule(RuleType.string().required())
  color: string;

  @Rule(RuleType.string().required())
  size: string;

  @Rule(RuleType.number().required().min(0))
  price: number;

  @Rule(RuleType.number().required().min(0))
  stock: number;
}

// 单个 SKU 信息
export class SingleSkuDto extends SkuDto {
  @Rule(RuleType.number().required())
  productId: number;
}

export class NewSkuDTO {
  @Rule(RuleType.number().required())
  productId: number;

  @Rule(RuleType.string().required())
  poster: string;

  @Rule(RuleType.string().required())
  color: string;

  @Rule(RuleType.string().required())
  size: string;

  @Rule(RuleType.number().required().min(0))
  price: number;

  @Rule(RuleType.number().required().min(0))
  stock: number;
}

export class ListSkuDTO {
  // SKU 所属的商品 ID
  @Rule(RuleType.number().required())
  productId: number;

  // 排序方式：默认根据 id 升序
  @Rule(RuleType.string().default('ASC'))
  order?: 'ASC' | 'DESC';

  // 分页开始下标
  @Rule(RuleType.number().min(0).default(0))
  start?: number;

  // 分页条数
  @Rule(RuleType.number().min(1).max(200).default(50))
  limit?: number;
}
